package savet.gui.util;

import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Icon;
import javax.swing.table.AbstractTableModel;
import savet.entidades.Trabalhador;
import savet.entidades.atributos.Ferias;
import savet.entidades.atributos.Periodo;
import savet.util.ListaTrabalhadores;

/**
 *
 * @author Adisson Marinho
 */
public class FeriasItem extends PopupPeriodosItem {

    /** Identificador de action de periodos de gozo */
    public static final String PERIODOS_GOZO = "Períodos de Gozo";
    /** Identificador de action de periodos de afastamento/saidas */
    public static final String PERIODOS_AFASTAMENTO = "Períodos de Afastamento";

    /**
     *
     * @param name Valor que deve ser ou {@link #PERIODOS_GOZO} ou {@link #PERIODOS_AFASTAMENTO}
     */
    public FeriasItem(String name) {
        this(name, null);
    }

    /**
     *
     * @param name Valor que deve ser ou {@link #PERIODOS_GOZO} ou {@link #PERIODOS_AFASTAMENTO}
     */
    public FeriasItem(String name, Icon icon) {
        super(name, icon);
    }

    @Override
    protected void efetuarOperacao(Trabalhador trabalhador) {

        // Obtem valor da Action
        String name = getAction().getValue(AbstractAction.NAME).toString();
        Ferias ferias = trabalhador.getFerias();
        
        if (ferias != null) {
            if (name.equals(PERIODOS_GOZO)) {
                criarDialogoPeriodos(ferias.getListaFerias());
                ferias.atualizarFerias();
            } else if (name.equals(PERIODOS_AFASTAMENTO)) {
                criarDialogoPeriodos(ferias.getListaSaidas());
                ferias.atualizarSaidas();
            }

            if (table != null) {
                AbstractTableModel model = (AbstractTableModel) table.getModel();
                model.fireTableRowsUpdated(row, row);
                table = null;
            }
        }

    }

}
